package com.param.impl;

import java.math.BigDecimal;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import com.param.concat.IManuscriptParams;
import com.param.concat.IToExamineParamBySearch;

public class ToExamineParamBySearch<M extends IManuscriptParams> extends IdParam implements IToExamineParamBySearch<M> {

	@NotNull
	@Min(value = 0, message = "状态最小值为0, 0表示通过") 
	@Max(value = 1, message = "状态最大值为1, 1表示拒绝")
	private Byte status;
	
	/**
	 * 审核原因
	 */
	private String requirement;
	
	/**
	 * 0 初始 1 反馈 2 售后3 新增
     * 服务类型
     */
	@Min(value = 1, message = "服务类型最小值为1, 1表示反馈") 
	@Max(value = 2, message = "服务类型最大值为2, 2表示售后")
	private Byte serviceType;
	
	private Integer payManagerId;
	
	private int orderLogId;
	
	private int userId;
	
	
	@Min(value = 1000000, message = "返稿时间不能小于 2020 年")
	private Long returnTime;

	@Min(value = 1, message = "处理人id 最小值为 1")
	private Long processed;
	
	@Min(value = 0, message = "稿费最小值为0")
	private BigDecimal processMoney;

	/**
     * 附件
     */
	private @Valid M[] files;
	
	
	
	
	public Long getReturnTime() {
		return returnTime;
	}

	public void setReturnTime(Long returnTime) {
		this.returnTime = returnTime;
	}

	public Long getProcessed() {
		return processed;
	}

	public void setProcessed(Long processed) {
		this.processed = processed;
	}

	public BigDecimal getProcessMoney() {
		return processMoney;
	}

	public void setProcessMoney(BigDecimal processMoney) {
		this.processMoney = processMoney;
	}

	public Byte getServiceType() {
		return serviceType;
	}

	public void setServiceType(Byte serviceType) {
		this.serviceType = serviceType;
	}

	

	public Byte getStatus() {
		return status;
	}

	public void setStatus(Byte status) {
		this.status = status;
	}

	public String getRequirement() {
		return requirement;
	}

	public void setRequirement(String requirement) {
		this.requirement = requirement;
	}

	public M[] getFiles() {
		return files;
	}

	public void setFiles(M[] files) {
		this.files = files;
	}

	public Integer getPayManagerId() {
		return payManagerId;
	}

	public void setPayManagerId(Integer payManagerId) {
		this.payManagerId = payManagerId;
	}

	public int getUserId() {
		return userId;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}

	public int getOrderLogId() {
		return orderLogId;
	}

	public void setOrderLogId(int orderLogId) {
		this.orderLogId = orderLogId;
	}
}
